module("framework.mvc.view.ViewEvent", package.seeall)

---@class ViewEvent : BaseEvent
local ViewEvent = { }
setmetatable(ViewEvent, BaseEvent)

--for ViewMgr
ViewEvent.OnOpenView = ViewEvent()                -- 打开界面
ViewEvent.OnOpenViewFinish = ViewEvent()          -- 打开界面完成（打开动画播完）
ViewEvent.OnCloseView = ViewEvent()               -- 关闭界面
ViewEvent.OnCloseViewFinish = ViewEvent()         -- 关闭界面完成（关闭动画播完，界面隐藏）
ViewEvent.OnOpenModalView = ViewEvent()           -- 打开二级弹框
ViewEvent.OnOpenModalViewFinish = ViewEvent()     -- 打开二级弹框完成（打开动画播完）
ViewEvent.OnCloseModalView = ViewEvent()          -- 关闭二级弹框
ViewEvent.OnCloseModalViewFinish = ViewEvent()    -- 关闭二级弹框完成（关闭动画播完，界面隐藏）
ViewEvent.OnOpenFullView = ViewEvent()            -- 打开全屏界面
ViewEvent.OnOpenFullViewFinish = ViewEvent()     -- 打开全屏界面完成（打开动画播完）
ViewEvent.OnCloseFullView = ViewEvent()          -- 关闭全屏界面
ViewEvent.OnCloseFullViewFinish = ViewEvent()    -- 关闭全屏界面完成（关闭动画播完，界面隐藏）
ViewEvent.ReOpenWhileOpen = ViewEvent()          -- 界面打开状态下，又调用了open
ViewEvent.BeforeOpenView = ViewEvent()           -- 调用openView，在资源加载之前抛出
ViewEvent.DestroyViewFinish = ViewEvent()        -- 界面销毁，资源释放后抛出事件
ViewEvent.DestroyFullViewFinish = ViewEvent()    -- 全屏界面销毁，资源释放后抛出事件
ViewEvent.DestroyModalViewFinish = ViewEvent()   -- 二级弹框销毁，资源释放后抛出事件

--for TabView
ViewEvent.ToSwitchTab = ViewEvent()
ViewEvent.BeforeOpenTabView = ViewEvent()         -- TabView 打开子界面

return ViewEvent
